Express.js হলো Node.js এর জন্য একটি জনপ্রিয়, হালকা এবং ন্যূনতম ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক, যা HTTP সার্ভার তৈরি এবং ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। এটি HTTP রিকোয়েস্ট ও রেসপন্স হ্যান্ডল করতে সহজ করে তোলে, এবং এর মাধ্যমে ডেভেলপাররা দ্রুত, স্কেলেবল এবং রক্ষণাবেক্ষণযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারে।
Express.js Node.js এর উপর তৈরি এবং এর সহজ ইন্টারফেস ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং কার্যকরী করে তোলে। এটি রাউটিং, মিডলওয়্যার, HTTP সার্ভার ক্রিয়েশন, টেমপ্লেট রেন্ডারিং, এবং ডেটা প্রসেসিংয়ের জন্য শক্তিশালী ফিচার প্রদান করে।
১. Express.js ইনস্টলেশন
Express.js ব্যবহার শুরু করতে প্রথমে আপনার প্রজেক্টে Express ইনস্টল করতে হবে। NPM (Node Package Manager) ব্যবহার করে এটি ইনস্টল করা হয়।
স্টেপ ১: Node.js প্রজেক্ট তৈরি করা
প্রথমে একটি নতুন Node.js প্রজেক্ট তৈরি করতে হবে:
mkdir my-express-app
cd my-express-app
npm init -y # package.json তৈরি হবেস্টেপ ২: Express ইনস্টল করা
Express.js ইনস্টল করতে NPM ব্যবহার করুন:
npm install express --save২. একটি সাধারণ Express অ্যাপ্লিকেশন তৈরি করা
Express.js দিয়ে একটি সাধারণ HTTP সার্ভার তৈরি করা খুবই সহজ। নিচে একটি সাধারণ Express অ্যাপ্লিকেশন তৈরির উদাহরণ দেওয়া হলো:
// express মডিউল ইম্পোর্ট করা
const express = require('express');
const app = express();
// রুট রাউটিং তৈরি
app.get('/', (req, res) => {
res.send('Hello, Express!');
});
// সার্ভার চালু
app.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});এখানে:
app.get()মেথড ব্যবহার করে/পাথে একটি GET রিকোয়েস্ট হ্যান্ডল করা হয়েছে।res.send()মেথড ব্যবহার করে ক্লায়েন্টকে "Hello, Express!" পাঠানো হচ্ছে।app.listen()মেথড দিয়ে সার্ভার ৩০০০ পোর্টে লিসেন করছে।
এটি চালানোর পর ব্রাউজারে http://localhost:3000/ এ গিয়ে আপনি "Hello, Express!" দেখতে পাবেন।
৩. Express Routing (রাউটিং)
Express.js রাউটিং ব্যবস্থাকে খুবই সহজ এবং নমনীয়ভাবে পরিচালনা করতে সহায়তা করে। আপনি HTTP মেথড (GET, POST, PUT, DELETE) এবং পাথের মাধ্যমে ডাইনামিক রাউট তৈরি করতে পারেন।
উদাহরণ: বিভিন্ন HTTP মেথডের জন্য রাউটিং
const express = require('express');
const app = express();
// GET রাউট
app.get('/', (req, res) => {
res.send('GET request received');
});
// POST রাউট
app.post('/submit', (req, res) => {
res.send('POST request received');
});
// PUT রাউট
app.put('/update', (req, res) => {
res.send('PUT request received');
});
// DELETE রাউট
app.delete('/delete', (req, res) => {
res.send('DELETE request received');
});
app.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});এখানে, চারটি HTTP মেথডের (GET, POST, PUT, DELETE) জন্য বিভিন্ন রাউট তৈরি করা হয়েছে।
৪. Middleware (মিডলওয়্যার)
Express.js এ মিডলওয়্যার হলো এমন ফাংশন যা HTTP রিকোয়েস্ট এবং রেসপন্সের মধ্যে প্রক্রিয়া সম্পাদন করে। এটি সাধারণত রিকোয়েস্ট লগিং, অথেনটিকেশন, ডেটা পার্সিং, এবং রিকোয়েস্ট বৈধকরণে ব্যবহৃত হয়।
উদাহরণ: একটি সাধারণ মিডলওয়্যার
const express = require('express');
const app = express();
// মিডলওয়্যার তৈরি
app.use((req, res, next) => {
console.log('Request received:', req.method, req.url);
next(); // রিকোয়েস্ট পরবর্তী রাউট বা মিডলওয়্যার এ পাঠানো
});
app.get('/', (req, res) => {
res.send('Hello, Express with Middleware!');
});
app.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});এখানে, একটি মিডলওয়্যার রিকোয়েস্টের তথ্য (method ও url) কনসোলে প্রিন্ট করবে এবং পরে next() মেথড কল করবে, যার মাধ্যমে রিকোয়েস্ট পরবর্তী রাউট বা মিডলওয়্যার হ্যান্ডল করবে।
Built-in Middleware:
Express.js কিছু বিল্ট-ইন মিডলওয়্যার প্রদান করে যেমন:
express.json(): JSON বডি পার্স করতে ব্যবহৃত।express.urlencoded(): URL-encoded ডেটা পার্স করতে ব্যবহৃত।
app.use(express.json()); // JSON ডেটা পার্স করা
app.use(express.urlencoded({ extended: true })); // URL-encoded ডেটা পার্স করা৫. Template Engines (টেমপ্লেট ইঞ্জিন)
Express.js এ টেমপ্লেট ইঞ্জিন ব্যবহার করে ডাইনামিক HTML রেন্ডার করা যায়। কিছু জনপ্রিয় টেমপ্লেট ইঞ্জিনের মধ্যে EJS, Pug, এবং Handlebars রয়েছে।
উদাহরণ: EJS টেমপ্লেট ইঞ্জিন ব্যবহার
প্রথমে EJS ইনস্টল করুন:
npm install ejs --saveExpress অ্যাপ্লিকেশনে EJS ব্যবহার করা:
const express = require('express'); const app = express(); app.set('view engine', 'ejs'); // EJS টেমপ্লেট ইঞ্জিন সেট করা app.get('/', (req, res) => { res.render('index', { title: 'Express with EJS', message: 'Hello from EJS!' }); }); app.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });views/index.ejs:
<html> <head> <title><%= title %></title> </head> <body> <h1><%= message %></h1> </body> </html>
এখানে, EJS টেমপ্লেট ইঞ্জিন ব্যবহার করে ডাইনামিক HTML রেন্ডার করা হচ্ছে।
৬. Static Files Serving (স্ট্যাটিক ফাইল সার্ভিং)
Express.js ব্যবহার করে স্ট্যাটিক ফাইল (যেমন, CSS, JavaScript, ইমেজ) সরাসরি সার্ভ করা সম্ভব।
const express = require('express');
const app = express();
// Static files serve করা
app.use(express.static('public')); // 'public' ফোল্ডার থেকে ফাইল সার্ভ হবে
app.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});এখানে, express.static() মেথড ব্যবহার করে স্ট্যাটিক ফাইল সার্ভ করা হচ্ছে।
সারাংশ
Express.js হল একটি শক্তিশালী ও হালকা ফ্রেমওয়ার্ক যা Node.js এর উপরে তৈরি, এবং এটি ওয়েব অ্যাপ্লিকেশন এবং API ডেভেলপমেন্টের জন্য অত্যন্ত উপকারী। Express সহজ রাউটিং, মিডলওয়্যার সাপোর্ট, টেমপ্লেট ইঞ্জিন, এবং স্ট্যাটিক ফাইল সার্ভিং এর মাধ্যমে ডেভেলপমেন্ট প্রক্রিয়া দ্রুত ও কার্যকরী করে তোলে। Express.js দিয়ে আপনি খুব সহজেই স্কেলেবল এবং কার্যকরী ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারবেন।
Read more